package com.hulk.dryad.manage.framework.websocket.server.user;

import cn.hutool.core.util.StrUtil;
import com.google.common.base.Splitter;

import java.util.List;

/**
 * user 存储
 * username = name + tenant
 * @author hulk
 */
public interface IWsUserStore {

	  String STORE_KEY = "WEBSOCKET$SERVER$USER$DRYAD";
	/**
	 * 获取所有用户
	 *
	 * @return 用户列表
	 */
	List<String> listAll(String tenant);

	/**
	 * 判断用户是否存在
	 *
	 * @param userInfo 用户
	 * @return 是否存在
	 */
	boolean has(String userInfo);

	/**
	 * 存储用户
	 *
	 * @param userInfo 用户
	 */
	void put(String userInfo);

	/**
	 * 删除用户
	 *
	 * @param userInfo 用户
	 */
	void remove(String userInfo);

	default String pickTenant (String userInfo) {
		return Splitter.on(StrUtil.COLON).trimResults().omitEmptyStrings().splitToList(userInfo).get(0);
	}
	default String pickName (String userInfo) {
		return Splitter.on(StrUtil.COLON).trimResults().omitEmptyStrings().splitToList(userInfo).get(1);
	}

}
